Perjalanan dari struct ke tipe data abstrak Tipe Data Abstrak (ADT) menandai transisi dari "Kotak Kaca," di mana setiap kabel internal terlihat, ke "Kotak Hitam" di mana antarmuka dipisahkan dari implementasi. Perubahan ini menjamin enkapsulasi: pengguna berinteraksi dengan fungsi seperti baca atau gabungkan tanpa perlu tahu bagaimana pendapatan dihitung atau disimpan.
1. Arsitektur Kelas
Setiap kelas mendefinisikan identitas tipe unik. Bahkan jika dua kelas memiliki anggota yang identik, C++ menganggapnya tidak kompatibel. Menggunakan typedef dan deklarasi maju (misalnya, class Screen;) memungkinkan kita merancang hubungan kompleks sambil mempertahankan abstraksi. Kita sering menggunakan versi sintetis konstruktor, seperti Sales_data() = default;, untuk menjaga kemudahan penggunaan tipe bawaan ($$total = trans;$$).
2. Fungsi Antarmuka Nonmember
Fungsi seperti baca adalah Fungsi Terkait Kelas Nonmember. Mereka merupakan bagian dari antarmuka tetapi bukan bagian dari kelas itu sendiri, sering kali membutuhkan kerja sama untuk mengakses data privat.